/*
 * @Description: 监控日志
 * @Author: HuiSir<273250950@qq.com>
 * @Date: 2022-02-24 16:15:38
 * @LastEditTime: 2025-09-16 17:44:01
 */
import Req from "@/utils/Request";
const Prefix = "/monitor";

/**
 * 分页获取请求日志的API请求函数
 *
 * @param params 请求参数，符合IGetLogsParams接口的定义
 * @returns 返回ApiRequest对象，用于发起请求
 */
export const getReqLogsByPage: ApiRequest<GetLogsParams> = (params) =>
  Req.get(`${Prefix}/getReqLogsByPage`, { params });

/**
 * 删除请求日志的 API 请求函数
 *
 * @param ids 请求日志的ID数组
 * @returns 返回类型为 ApiRequest<string>，即返回一个包含请求结果的 Promise 对象
 */
export const delReqLogs: ApiRequest<string> = (ids) =>
  Req.post(`${Prefix}/delReqLogs`, { ids });

/**
 * 根据分页获取登录日志信息
 *
 * @param params 获取登录日志的参数
 * @returns ApiRequest<GetLogsParams> 返回包含登录日志信息的 ApiRequest 对象
 */
export const getLoginLogsByPage: ApiRequest<GetLogsParams> = (params) =>
  Req.get(`${Prefix}/getLoginLogsByPage`, { params });

/**
 * 删除登录请求日志的API请求函数
 *
 * @param ids 要删除的日志ID数组
 * @returns ApiRequest<string> 返回一个ApiRequest对象，其中泛型参数string表示请求的结果类型为字符串
 */
export const delLoginReqLogs: ApiRequest<string> = (ids) =>
  Req.post(`${Prefix}/delLoginReqLogs`, { ids });

/**
 * 分页获取在线用户
 *
 * @param params 请求参数
 * @returns ApiRequest<GetLogsParams> ApiRequest 对象
 */
export const getOnlineUsersByPage: ApiRequest<GetLogsParams> = (params) =>
  Req.get(`${Prefix}/getOnlineUsersByPage`, { params });

/**
 * 强制退出用户
 *
 * @param ids 需要强制退出的用户ID数组
 * @returns ApiRequest<string> 返回ApiRequest对象，请求成功时返回被强制退出的用户ID字符串
 */
export const forcedExit: ApiRequest<string> = (ids) =>
  Req.post(`${Prefix}/forcedExit`, { ids });

/**
 * 获取服务器信息的 API 请求函数
 *
 * @returns ApiRequest 返回类型，包含请求方法、请求 URL 等信息
 */
export const getServerInfo: ApiRequest = () =>
  Req.get(`${Prefix}/getServerInfo`);
